import time
import unittest
from selenium import webdriver
from selenium.webdriver import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.firefox.service import Service


class UnittestFireFoxDriver(unittest.TestCase):
    """
        driver 代表的是 浏览器 驱动对象
    """
    driver = None

    @classmethod
    def setUpClass(cls) -> None:
        cls.service = Service(executable_path='../day01/driver_exe/geckodriver.exe')
        cls.driver = webdriver.Firefox(service=cls.service)

    @unittest.skip('NO')
    def test_element_8(self):
        """八大元素定位方式 ：三种"""
        self.driver.get('file:///D:/SoftWare/testhtml/exam/House.html')

        # 1、 通过 xpath 的方式来进行 元素 定位
        wymc = self.driver.find_element(By.XPATH, "//input[@value='请输入']")
        wymc.clear()
        wymc.send_keys('hanamaki')

        time.sleep(2)

        # 2、 通过 css 的方式来进行 元素 定位
        wymc = self.driver.find_element(By.CSS_SELECTOR, "input[value='请输入']")
        wymc.clear()
        wymc.send_keys('andy')

        time.sleep(2)

        # 2.1、 通过 css 的方式来进行 元素 定位
        wymc = self.driver.find_element(By.CSS_SELECTOR, "input.uname")
        wymc.clear()
        wymc.send_keys('jojo')

    @unittest.skip('NO')
    def test_element_tag_name(self):
        """八大元素定位方式 ：tag_name"""
        self.driver.get('file:///D:/SoftWare/testhtml/exam/House.html')
        # 2.1、 通过 css 的方式来进行 元素 定位
        wymc = self.driver.find_elements(By.TAG_NAME, "input")
        wymc[0].clear()
        wymc[0].send_keys('rose-jack')

    @unittest.skip('NO')
    def test_element_name(self):
        """八大元素定位方式 ：name"""
        self.driver.get('file:///D:/SoftWare/testhtml/exam/House.html')
        # 2.1、 通过 css 的方式来进行 元素 定位
        wymc = self.driver.find_element(By.NAME, "username")
        wymc.clear()
        wymc.send_keys('rose-jack-hanamaki')

    def test_element_class_name(self):
        """八大元素定位方式 ：class_name"""
        self.driver.get('file:///D:/SoftWare/testhtml/exam/House.html')
        # 2.1、 通过 css 的方式来进行 元素 定位
        wymc = self.driver.find_element(By.CLASS_NAME, "uname")
        wymc.clear()
        wymc.send_keys('andy-rose-jack-hanamaki')

    def test_element_id(self):
        """八大元素定位方式 ：id"""
        self.driver.get('file:///D:/SoftWare/testhtml/exam/House.html')
        # 2.1、 通过 css 的方式来进行 元素 定位
        email = self.driver.find_element(By.ID, "email")
        email.clear()
        email.send_keys('123@qq.com')

    @classmethod
    def tearDownClass(cls) -> None:
        # cls.driver.close()
        # cls.driver.quit()
        pass


if __name__ == '__main__':
    pass
